// 导入命名空间工具函数，用于生成本地存储键的命名空间
import { getStorageNS } from "@follow/utils/ns"

/**
 * 源（Feed）相关常量
 */

/// Feed
/**
 * 收藏列表的标识常量
 * 用于在路由和数据处理中标识收藏列表类型的内容
 */
export const FEED_COLLECTION_LIST = "collections"

/**
 * 本地存储键相关常量
 */

/// Local storage keys
/**
 * React Query离线缓存的持久化键名
 * 使用getStorageNS确保键名唯一性，避免与其他应用冲突
 */
export const QUERY_PERSIST_KEY = getStorageNS("REACT_QUERY_OFFLINE_CACHE")

/**
 * 国际化语言设置的存储键名
 * 用于保存和读取用户选择的界面语言
 */
export const I18N_LOCALE_KEY = getStorageNS("I18N_LOCALE")

/**
 * 路由路径段常量
 * 这些常量在构建和解析路由路径时使用，确保一致性
 */

/// Route Keys
/**
 * 源路径段 - 表示"所有"源的标识符
 * 用于路由中的feedId位置，指定显示所有源的内容
 * 在重定向逻辑中用于构建timeline URL
 */
export const ROUTE_FEED_PENDING = "all"

/**
 * 条目路径段 - 表示"待处理"条目的标识符
 * 用于路由中的entryId位置，指定显示所有条目的内容
 * 在重定向逻辑中用于构建timeline URL
 */
export const ROUTE_ENTRY_PENDING = "pending"

/**
 * 文件夹路径前缀 - 标识文件夹类型的源路径
 * 在路由中用于区分普通源和文件夹源
 */
export const ROUTE_FEED_IN_FOLDER = "folder-"

/**
 * 列表路径前缀 - 标识列表类型的源路径
 * 在路由中用于区分普通源和列表源
 */
export const ROUTE_FEED_IN_LIST = "list-"

/**
 * 收件箱路径前缀 - 标识收件箱类型的源路径
 * 在路由中用于区分普通源和收件箱源
 */
export const ROUTE_FEED_IN_INBOX = "inbox-"

/**
 * 视图路径前缀 - 标识timeline视图类型的路径
 * 在路由中用于指定特定的视图类型
 * 例如："view-0" 表示All视图，"view-1" 表示Articles视图等
 * 此常量在重定向逻辑和路由解析中扮演关键角色
 */
export const ROUTE_TIMELINE_OF_VIEW = "view-"
